/*
 * Copyright 2014 Щекотова Ангелина Александровна.
 * Этот файл — часть J4JClientServer Framework
 * J4JClientServer Framework - свободная программа: вы можете перераспространять ее и/или изменять
 * ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде, в каком
 * она была опубликована Фондом свободного программного обеспечения; либо
 * версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
 *
 * J4JClientServer Framework распространяется в надежде, что она будет полезной,
 * но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
 * или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
 * общественной лицензии GNU.
 *
 * Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
 * вместе с этой программой. Если это не так, см.
 * <http://www.gnu.org/licenses/>.
 */

package ru.java4java.utils;

public final class NumberUtils {

    public static boolean asBoolean(byte value)   { return value > 0; }
    public static boolean asBoolean(short value)  { return value > 0; }
    public static boolean asBoolean(char value)   { return value > 0; }
    public static boolean asBoolean(int value)    { return value > 0; }
    public static boolean asBoolean(long value)   { return value > 0; }
    public static boolean asBoolean(float value)  { return value > 0.0f; }
    public static boolean asBoolean(double value) { return value > 0.0d; }
    public static boolean asBoolean(Object value) { return value != null; }

    public static int   long2int  (long value) { return (int)  (value & 0xFFFFFFFFL); } // 4 byte
    public static short long2short(long value) { return (short)(value & 0xFFFFL); }     // 2 byte
    public static char  long2char (long value) { return (char) (value & 0xFFFFL); }     // 2 byte
    public static byte  long2byte (long value) { return (byte) (value & 0xFFL); }       // 1 byte

    public static short int2short(int value) { return (short)(value & 0xFFFF); }        // 2 byte
    public static char  int2char (int value) { return (char) (value & 0xFFFF); }        // 2 byte
    public static byte  int2byte (int value) { return (byte) (value & 0xFF); }          // 1 byte

    public static byte short2byte(short value) { return (byte)(value & 0xFF); }         // 1 byte

    public static byte char2byte(char value) { return (byte)(value & 0xFF); }           // 1 byte

}
